// Package client main.
// @author: zhenxinma.
// @create: 2021-10-03 23:28:51
package main

import (
	"context"
	"log"

	"gitee.com/zhenxinma/go_common/src/protos"
	"google.golang.org/grpc"
)

// Address Address: grpc 远程调用地址.
const Address = "127.0.0.1:9999"

func main() {

	// 第一步：对远程服务建立连接.
	// 对于同一个服务的远程调用的Conn连接，可以用池子进行维护.
	conn, err := grpc.Dial(Address, grpc.WithInsecure())
	if nil != err {
		log.Println("client error: ", err.Error())
	}
	defer conn.Close()

	// 第二步：初始化Client. 通过代码转化完成的.
	client := protos.NewHelloClient(conn)

	// 开始调用.
	request := &protos.Request{
		Message: "I am Client",
	}

	res, err := client.SayHello(context.Background(), request)
	if nil != err {
		log.Println("client error: ", err.Error())
	}

	log.Println("client dial suc result: ", res.Message)
}
